<!DOCTYPE html>
<html>
  <head>
    <title>数值增强</title>
    <style></style>
  </head>
  <body>
    <script>
      // 只挑了一部分

      // >>数值分隔符
      // 只是为了编码时更好读，仅“编码时”，数值处理上和以前没有任何改变
      // 规则：
      //   1、不能连续出现两个下划线
      //   2、不能出现在头尾
      //   3、不能接在小数点后
      //   4、不能接在科学计数法的e后
      const a = 100_100_100
      console.log(a) // 100100100
      console.log('----------------------------')

      //   >>Number.isFinite(Number)
      //   判断数值是否有限，非数值和NAN一律返回false
      //   与老方法相比，该方法不处理非数值，一律返回false
      console.log(Number.isFinite(1)) // true
      console.log(Number.isFinite(Infinity)) // false
      console.log(Number.isFinite(NaN)) // false
      console.log('----------------------------')

      //   >>Number.isNaN(Number)
      //   判断数值是否是NaN
      //   与老方法相比，该方法不处理非数值，一律返回false
      console.log(Number.isNaN(NaN)) // true
      console.log('----------------------------')

      //   Number.isInteger(Number) ，判断是不是整数。有精度限制，精度太高不推荐，会误判
      console.log('Number.isInteger(1):', Number.isInteger(1)) // true
      console.log('----------------------------')

      //   安全整数和 Number.isSafeInteger()
      //   判断一个整数是否落在下方的范围内: - 2^53  到 2^53 - 1 (不含端点)
      console.log(Number.MIN_SAFE_INTEGER, Number.MAX_SAFE_INTEGER)
      console.log('----------------------------')

      //   Math增强
      //   以下函数会先预处理成数值类型
      //   Math.trunc(Number) ，斩去小数部分
      //   Math.sign(Number) ，判断正负，会返回种值：+1，-1，0，-0，NaN
    </script>
  </body>
</html>
